using System;
using UnityEngine;

public class Setting : MonoBehaviour
{
	[Serializable]
	public struct Mine
	{
		public int maxReset;

		public Mineral mineral;

		public int superCashBonus;

		public int baseMultiplier;

		public float multiplierFactor;

		public float resetPriceFactor;

		public double baseUnlockPrice;
	}

	[Serializable]
	public struct Elevator
	{
		[Header("Default Properties")]
		public double defaultLoadingTime;

		public float defaultMovementSpeed;

		[Header("Base Configuration")]
		public int baseManagerPrice;

		public int baseUpgradePrice;

		public float loadFactor;

		public float hireManagerFactor;

		public float upgradePriceFactor;

		public float movementSpeedFactor;

		public float upgradeLoadBonusFactor;

		public NextBoostAtLevel[] nextBoostAtLevel;
	}

	[Serializable]
	public struct MineShaft
	{
		[Header("Default Properties")]
		public int defaultMiners;

		public float defaultMiningTime;

		public float defaultWalkingSpeed;

		[Header("Base Configuration")]
		public int maxFloor;

		public int baseManagerPrice;

		public int baseUnlockPrice;

		public int barrierUnlockStep;

		public int minSuperCashUnlock;

		public int maxSuperCashUnlock;

		public float mineShaftOffset;

		public float hireManagerFactor;

		public float unlockPriceFactor;

		public float upgradePriceFactor;

		public float upgradeBonusFactor;

		public float unlockBarrierFactor;

		public float workerCapacityFactor;

		public int[] minerBoostAtLevel;

		public NextBoostAtLevel[] nextBoostAtLevel;
	}

	[Serializable]
	public struct Warehouse
	{
		[Header("Default Properties")]
		public int defaultTransporter;

		public float defaultLoadingTime;

		public float defaultWalkingSpeed;

		[Header("Base Configuration")]
		public int baseManagerPrice;

		public int baseUpgradePrice;

		public float loadFactor;

		public float hireManagerFactor;

		public float upgradePriceFactor;

		public float upgradeLoadBonusFactor;

		public int[] transporterBoostAtLevel;

		public NextBoostAtLevel[] nextBoostAtLevel;
	}

	[Serializable]
	public struct NextBoostAtLevel
	{
		public int level;

		public int superCash;
	}

	[Serializable]
	public struct BlockUnlockAtFloor
	{
		public int blockTime;

		public int processReduceTime;

		public int superCashToUnlock;
	}

	[Serializable]
	public struct Boost
	{
		public int duration;

		public int effective;

		public int maxDuration;
	}

	[Serializable]
	public struct Cash
	{
		public int instantCashDefault;

		public int instantCashDuration;
	}

	[Serializable]
	public struct Configuration
	{
		public string dataName;

		public int idleCashRate;

		public int maxStorageTime;

		public int minStorageTime;

		public double startedCash;
	}

	[Serializable]
	public struct Recruiment
	{
		public SkillRate[] skillRate;

		public ExperienceRate[] experienceRate;

		public SkillEffective[] skillEffective;
	}

	[Serializable]
	public struct SkillRate
	{
		public int rate;

		public Skill skill;
	}

	[Serializable]
	public struct ExperienceRate
	{
		public int rate;

		public Experience experience;
	}

	[Serializable]
	public struct SkillEffective
	{
		public int cooldown;

		public int maintain;

		public int effective;

		public Skill skill;

		public Experience experience;
	}

	public Mine[] mine;

	public Cash cash;

	public Boost boost;

	public Elevator elevator;

	public MineShaft mineShaft;

	public Warehouse warehouse;

	public Recruiment recruiment;

	public Configuration configuration;

	public BlockUnlockAtFloor[] blockUnlockAtFloor;

	[ContextMenu("Reset Data")]
	private void ResetData()
	{
	}
}
